The RDMA network has no impact on the operating systems, does not need to use too many computer processing functions, and eliminates the need to perform external memory copying and context switch operations. Therefore, the RDMA network well solves the problems of communication latency, and bandwidth between the servers, and has been widely applied to high performance cluster computing in data centers.
As an efficient and portable communication specification, a Message Passing Interface (MPI) library is used for passing data between processes in cluster computing. Different vendors have their own methods for implementing an MPI library. An Accelio communication library is a reliable high-performance asynchronous message-passing and remote process-calling protocol library that can optimize hardware acceleration. In an existing cluster computing environment, if an RDMA network is adopted to improve the communication efficiency, generally an MPI library or an Accelio communication library is used.
A distributed computing program coded using an MPI library uses a process ID to identify one computing process. The program implements data exchanges by using a point-to-point communication interface and a cluster communication interface that are provided by the MPI library. The MPI library is mature and has been widely used. However, for a distributed computing program that uses Transmission Control Protocol (TCP) Socket for communication, interface adaptation needs to be implemented by means of complex adjustments on the program architecture and program modifications for communication modules, before it can be switched to an MPI communication library environment. The MPI communication library is currently widely applied to cluster computing environments of data centers, and there are mature methods for using it. However, for TCP Socket-based distributed computing programs, the program architecture needs to be adjusted and the communication level needs to be redesigned, in order to adapt to the MPI interface.
The Accelio communication library is an asynchronous communication interface based on InfiniBand verbs (ib verbs) interfaces. It implements reliable high-performance transmission by using the features of the RDMA network, and provides a Request/Reply and Send/Receive communication model. The Accelio communication library is a set of asynchronous communication interfaces supporting RDMA network transmission, and can provide reliable high-performance point-to-point communication between servers. However, the interfaces provided by Accelio are complex, and a programmer needs to take a long time to learn the Accelio Application Programming interface (API). In addition, compared with TCP Socket, Accelio provides a message transmission model, rather than byte stream transmission. Moreover, Accelio provides an asynchronous non-blocking transmission mechanism, rather than a synchronous blocking mechanism in TCP Socket. Therefore, communication-level code adjustment needs to be performed for TCP Socket-based distributed computing programs, which takes a long time.